﻿/*
 * Malte Frerichs ?
 * Melvin Bos ?
 * Jasper ter Weeme ?
 */

using System;
using System.Collections.Generic;

namespace SortOf
{
    public class SelectionSort : ISort
    {
        public void Apply<T>(IList<T> list) where T : IComparable<T>
        {
            int k;
            T temp;

            for (int i = 0; i < list.Count; i++)
            {
                k = i;
                for (int j = i + 1; j < list.Count; j++)
                {
                    // checkt of list[k] kleiner is dan list[j]
                    if (list[j].CompareTo(list[k]) < 0)
                    {
                        k = j;
                    }
                }
                // wisselt list[i] met list[k]
                // m.a.w. het huidige getal in de array wordt geswitched met het kleinste getal
                temp = list[i];
                list[i] = list[k];
                list[k] = temp;
            }
        }
    }
}
